package com.shanzhu.book.model;

import java.util.Date;

/**
 * 座位预约实体类
 * 对应数据库表 seat_reservation
 */
public class SeatReservation {
    private Long id;                // 主键ID
    private String seatNumber;      // 座位编号
    private String location;        // 座位位置
    private Long userId;            // 预约用户ID
    private String username;        // 用户名
    private Integer reserveStatus;  // 预约状态 预约状态(0:可预约,1:预约中,2:已预约3:已使用)
    private Date startTime;         // 预约开始时间
    private Date endTime;           // 预约结束时间
    private Date actualCheckin;     // 实际签到时间
    private Date actualCheckout;    // 实际签退时间
    private Date createTime;        // 创建时间
    private Date updateTime;        // 更新时间

    // 无参构造方法
    public SeatReservation() {
    }



    // 带参构造方法
    public SeatReservation(String seatNumber, String location, Long userId, 
                         String username, Integer reserveStatus, Date startTime, 
                         Date endTime) {
        this.seatNumber = seatNumber;
        this.location = location;
        this.userId = userId;
        this.username = username;
        this.reserveStatus = reserveStatus;
        this.startTime = startTime;
        this.endTime = endTime;
    }

    // Getter和Setter方法
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSeatNumber() {
        return seatNumber;
    }

    public void setSeatNumber(String seatNumber) {
        this.seatNumber = seatNumber;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getReserveStatus() {
        return reserveStatus;
    }

    public void setReserveStatus(Integer reserveStatus) {
        this.reserveStatus = reserveStatus;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getActualCheckin() {
        return actualCheckin;
    }

    public void setActualCheckin(Date actualCheckin) {
        this.actualCheckin = actualCheckin;
    }

    public Date getActualCheckout() {
        return actualCheckout;
    }

    public void setActualCheckout(Date actualCheckout) {
        this.actualCheckout = actualCheckout;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "SeatReservation{" +
                "id=" + id +
                ", seatNumber='" + seatNumber + '\'' +
                ", location='" + location + '\'' +
                ", userId=" + userId +
                ", username='" + username + '\'' +
                ", reserveStatus=" + reserveStatus +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", actualCheckin=" + actualCheckin +
                ", actualCheckout=" + actualCheckout +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}